using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;

namespace Update
{
    public class Item
    {
        private string m_id = null;
        private string m_name = null;
        private Version m_version = null;
        private string m_downloadPath = null;
        private string m_versionInfo = null;
        private string m_relativePath = null;
        private List<Item> m_auxFiles = new List<Item>();

        #region Constructors
        public Item(string id)
        {
            m_id = id;
        }
        public Item(string id, string name)
        {
            m_id = id;
            m_name = name;
        }
        public Item(string id, string name, Version version)
        {
            m_id = id;
            m_name = name;
            m_version = version;
        }
        public Item(string id, string name, Version version, string downloadPath)
        {
            m_id = id;
            m_name = name;
            m_version = version;
            m_downloadPath = downloadPath;
        }
        public Item(string id, string name, Version version, string downloadPath, string versionInfo)
        {
            m_id = id;
            m_name = name;
            m_version = version;
            m_downloadPath = downloadPath;
            m_versionInfo = versionInfo;
        }
        public Item(string id, string name, Version version, string downloadPath, string versionInfo, string relativePath)
        {
            m_id = id;
            m_name = name;
            m_version = version;
            m_downloadPath = downloadPath;
            m_versionInfo = versionInfo;
            m_relativePath = relativePath;
        }
        #endregion

        #region Properties
        public string ID
        {
            get { return m_id; }
            set { m_id = value; }
        }
        public string Name
        {
            get { return m_name; }
            set { m_name = value; }
        }
        public Version Version
        {
            get { return m_version; }
            set { m_version = value; }
        }
        public string DownloadPath
        {
            get { return m_name; }
            set { m_name = value; }
        }
        public string VersionInfo
        {
            get { return m_versionInfo; }
            set { m_versionInfo = value; }
        }
        public string RelativePath
        {
            get { return m_relativePath; }
            set { m_relativePath = value; }
        }
        public List<Item> AuxFiles
        {
            get { return m_auxFiles; }
        }
        #endregion
    }
}
